package entity

import "go.mongodb.org/mongo-driver/bson/primitive"

type Build struct {
	Id         primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID        uint               `bson:"uid" json:"uid"`
	WID        uint               `bson:"wid" json:"wid"`
	TypeID     uint               `bson:"typeID" json:"typeID"`
	TypeName   string             `bson:"typeName" json:"typeName"`
	TypeImg    string             `bson:"typeImg" json:"typeImg"`
	Type       int                `bson:"type" json:"types"`
	TypeModule string             `bson:"typeModule" json:"typeModule"`
	TypeDesc   string             `bson:"typeDesc" json:"typeDesc"`
	IsSell     bool               `bson:"isSell" json:"isSell"`
	IncomeXJ   int64              `bson:"incomeXJ" json:"incomeXJ"`
	IncomeXY   int64              `bson:"incomeXY" json:"incomeXY"`
	Energy     int64              `bson:"energy" json:"energy"`
	IsOperate  bool               `bson:"isOperate" json:"isOperate"`
	IsAbandon  bool               `bson:"isAbandon" json:"isAbandon"`
	DailyTotal int64              `bson:"dailyTotal" json:"dailyTotal"` // 今日总次数
	DailyCount int64              `bson:"dailyCount" json:"dailyCount"` // 今日使用数
	TotalCount int64              `bson:"totalCount" json:"totalCount"` // 总使用次数
	UseCount   int64              `bson:"useCount" json:"useCount"`     // 已使用次数
}

type PortRecharge struct {
	Id                primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID               uint               `bson:"uid" json:"uid"`
	WID               uint               `bson:"wid" json:"wid"`
	TypeID            uint               `bson:"typeID" json:"typeID"`
	TypeName          string             `bson:"typeName" json:"typeName"`
	TypeImg           string             `bson:"typeImg" json:"typeImg"`
	TypeModule        string             `bson:"typeModule" json:"typeModule"`
	Consume           int64              `bson:"consume" json:"consume"`                 // 消耗数量
	ConsumeTypeID     uint               `bson:"consumeTypeID" json:"consumeTypeID"`     //消耗类型id
	ConsumeTypeName   string             `bson:"consumeTypeName" json:"consumeTypeName"` //消耗类型名称
	ConsumeTypeImg    string             `bson:"consumeTypeImg" json:"consumeTypeImg"`   //消耗类型图片
	ConsumeTypeModule string             `bson:"consumeTypeModule" json:"consumeTypeModule"`
}

// PortLog 维修|充能|冶炼 记录
type PortLog struct {
	Id                   primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID                  uint               `bson:"uid" json:"uid"`
	WID                  uint               `bson:"wid" json:"wid"` //机甲wid
	TypeID               uint               `bson:"typeID" json:"typeID"`
	TypeName             string             `bson:"typeName" json:"typeName"`
	TypeImg              string             `bson:"typeImg" json:"typeImg"`
	TypeModule           string             `bson:"typeModule" json:"typeModule"`
	PortWID              uint               `bson:"portWid" json:"portWid"` //维修港wid
	PortTypeID           uint               `bson:"portTypeID" json:"portTypeID"`
	PortTypeName         string             `bson:"portTypeName" json:"portTypeName"`
	PortTypeImg          string             `bson:"portTypeImg" json:"portTypeImg"`
	PortTypeModule       string             `bson:"portTypeModule" json:"portTypeModule"`
	PortConsume          int64              `bson:"portConsume" json:"portConsume"`           //港口消耗能量数量
	PortIncome           int64              `bson:"portIncome" json:"portIncome"`             //港口收益数量
	PortIncomeTypeID     uint               `bson:"portIncomeTypeID" json:"portIncomeTypeID"` //港口收益类型
	PortIncomeTypeName   string             `bson:"portIncomeTypeName" json:"portIncomeTypeName"`
	PortIncomeTypeImg    string             `bson:"portIncomeTypeImg" json:"portIncomeTypeImg"`
	PortIncomeTypeModule string             `bson:"portIncomeTypeModule" json:"portIncomeTypeModule"`
	Status               RepairStatus       `bson:"status" json:"status"`
	Num                  int64              `bson:"num" json:"num"`                         // 倍数
	Consume              int64              `bson:"consume" json:"consume"`                 // 消耗数量
	ConsumeTypeID        uint               `bson:"consumeTypeID" json:"consumeTypeID"`     //消耗类型id
	ConsumeTypeName      string             `bson:"consumeTypeName" json:"consumeTypeName"` //消耗类型名称
	ConsumeTypeImg       string             `bson:"consumeTypeImg" json:"consumeTypeImg"`   //消耗类型图片
	ConsumeTypeModule    string             `bson:"consumeTypeModule" json:"consumeTypeModule"`
	Income               int64              `bson:"income" json:"income"`             //收益数量
	IncomeTypeID         uint               `bson:"incomeTypeID" json:"incomeTypeID"` //港口收益类型
	IncomeTypeName       string             `bson:"incomeTypeName" json:"incomeTypeName"`
	IncomeTypeImg        string             `bson:"incomeTypeImg" json:"incomeTypeImg"`
	IncomeTypeModule     string             `bson:"incomeTypeModule" json:"incomeTypeModule"`
	StarTime             int64              `bson:"starTime" json:"starTime"` //维修开始时间
	EndTime              int64              `bson:"endTime" json:"endTime"`   //维修结束时间
}

type RepairStatus int

const (
	PortNone RepairStatus = iota // 等待
	PortIn                       // 操作中
	PortEnd                      // 完成
)

type PortReceiveLog struct {
	Id             primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID            uint               `bson:"uid" json:"uid"`
	PortWID        uint               `bson:"portWid" json:"PortWid"` //港口wid
	PortTypeID     uint               `bson:"portTypeID" json:"portTypeID"`
	PortTypeName   string             `bson:"portTypeName" json:"portTypeName"`
	PortTypeImg    string             `bson:"portTypeImg" json:"portTypeImg"`
	PortTypeModule string             `bson:"portTypeModule" json:"portTypeModule"`
	Num            int64              `bson:"num" json:"num"`       //领取数量
	TypeID         uint               `bson:"typeID" json:"typeID"` //领取类型
	TypeName       string             `bson:"typeName" json:"typeName"`
	TypeImg        string             `bson:"typeImg" json:"typeImg"`
	TypeModule     string             `bson:"typeModule" json:"typeModule"`
	ReceiveTime    int64              `bson:"receiveTime" json:"receiveTime"` //领取时间
}
